package jsen.tool.ddd.adapter.event.common;

import jsen.tool.ddd.adapter.event.DomainEvent;

/**
 * @author jsen
 * @date 2021/10/6
 */
interface Dispatcher {
    /**
     * 任务分发
     *
     * @param event 事件
     * @param <E>   事件类型
     */
    @SuppressWarnings("unused")
    <X extends DomainEvent, E extends DomainEvent> void dispatch(E event);

    /**
     * 任务分发
     *
     * @param event 事件
     * @param <E>   事件类型
     */
    @SuppressWarnings("unused")
    <X extends DomainEvent, E extends DomainEvent> void dispatchParallel(E event);
}
